home *** CD-ROM | disk | FTP | other *** search
- /* File access in libwww
- FILE ACCESS
-
- These are routines for local file access used by WWW browsers and servers. Implemented
- by HTFile.c.
-
- If the file is not a local file, then we pass it on to HTFTP in case it can be reached
- by FTP.
-
- */
- #ifndef HTFILE_H
- #define HTFILE_H
-
- #include "HTFormat.h"
- #include "HTAccess.h"
- #include "HTML.h" /* SCW */
-
-
-
- /*
-
- Controlling globals
-
- These flags control how directories and files are represented as hypertext, and are
- typically set by the application from command line options, etc.
-
- */
- extern int HTDirAccess; /* Directory access level */
-
- #define HT_DIR_FORBID 0 /* Altogether forbidden */
- #define HT_DIR_SELECTIVE 1 /* If HT_DIR_ENABLE_FILE exists */
- #define HT_DIR_OK 2 /* Any accesible directory */
-
- #define HT_DIR_ENABLE_FILE ".www_browsable" /* If exists, can browse */
-
- extern int HTDirReadme; /* Include readme files in listing? */
- /* Values: */
- #define HT_DIR_README_NONE 0 /* No */
- #define HT_DIR_README_TOP 1 /* Yes, first */
- #define HT_DIR_README_BOTTOM 2 /* Yes, at the end */
-
- #define HT_DIR_README_FILE "README"
-
-
- /*
-
- Convert filenames between local and WWW formats
-
- */
- extern char * HTLocalName PARAMS((CONST char * name));
-
-
- /*
-
- Make a WWW name from a full local path name
-
- */
- extern char * WWW_nameOfFile PARAMS((const char * name));
-
-
- /*
-
- Generate the name of a cache file
-
- */
- extern char * HTCacheFileName PARAMS((CONST char * name));
-
-
- /*
-
- Output directory titles
-
- This is (like the next one) used by HTFTP. It is common code to generate the title and
- heading 1 and the parent directory link for any anchor.
-
- */
- extern void HTDirTitles PARAMS((
- HTStructured * target,
- HTAnchor * anchor));
-
- /*
-
- Output a directory entry
-
- This is used by HTFTP.c for example -- it is a common routine for generating a linked
- directory entry.
-
- */
- extern void HTDirEntry PARAMS((
- HTStructured * target, /* in which to put the linked text */
- CONST char * tail, /* last part of directory name */
- CONST char * entry)); /* name of this entry */
-
- /*
-
- HTSetSuffix: Define the representation for a file suffix
-
- This defines a mapping between local file suffixes and file content types and
- encodings.
-
- ON ENTRY,
-
- suffix includes the "." if that is important (normally, yes!)
-
- representation is MIME-style content-type
-
- encoding is MIME-style content-transfer-encoding (8bit, 7bit, etc)
-
- quality an a priori judgement of the quality of such files (0.0..1.0)
-
- */
- /* Example: HTSetSuffix(".ps", "application/postscript", "8bit", 1.0);
- **
- */
-
- extern void HTSetSuffix PARAMS((
- CONST char * suffix,
- CONST char * representation,
- CONST char * encoding,
- float quality));
-
-
- /*
-
- HTFileFormat: Get Representation and Encoding from file name
-
- ON EXIT,
-
- return The represntation it imagines the file is in
-
- *pEncoding The encoding (binary, 7bit, etc). See HTSetSuffix .
-
- */
- extern HTFormat HTFileFormat PARAMS((
- CONST char * filename,
- HTAtom ** pEncoding));
-
-
- /*
-
- Determine file value from file name
-
- */
-
-
- extern float HTFileValue PARAMS((
- CONST char * filename));
-
-
- /*
-
- Determine write access to a file
-
- ON EXIT,
-
- return value YES if file can be accessed and can be written to.
-
- */
-
- /*
-
- BUGS
-
- Isn't there a quicker way?
-
- */
-
-
- extern BOOL HTEditable PARAMS((CONST char * filename));
-
-
- /*
-
- Determine a suitable suffix, given the representation
-
- ON ENTRY,
-
- rep is the atomized MIME style representation
-
- ON EXIT,
-
- returns a pointer to a suitable suffix string if one has been found,
- else NULL.
-
- */
- extern CONST char * HTFileSuffix PARAMS((
- HTAtom* rep));
-
-
-
- /*
-
- The Protocols
-
- */
- GLOBALREF HTProtocol HTFTP, HTFile;
-
- #endif /* HTFILE_H */
-
- /*
-
- end of HTFile */
-